﻿using System;
using System.ServiceModel;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;

using Microsoft.Practices.Unity.Configuration;
using Microsoft.Practices.Unity;

using Arquitetura.Architectural.Model;
using Arquitetura.Architectural.BusinessLogic;
using Arquitetura.Architectural.Services;
using Arquitetura.Model;
using Arquitetura.BusinessLogic;
using Arquitetura.ServiceContracts;

namespace Arquitetura.Services
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    public class SecretariaService : Service, ISecretariaService
    {
        #region Propriedade(s)
        private ISecretariaFacade SecretariaFacade
        {
            get
            {
                return Container.Resolve<ISecretariaFacade>();
            }
        }
        #endregion Propriedade(s)

        #region Construtor(es)
        public SecretariaService() 
            : base() { }
        #endregion Construtor(es)

        #region Método(s)
        [OperationBehavior]
        public Resultado<IList<Aluno>> ListarAluno()
        {
            return SecretariaFacade.ListarAluno();
        }

        [OperationBehavior]
        public Resultado InserirAluno(Aluno aluno)
        {
            return SecretariaFacade.InserirAluno(aluno);
        }

        [OperationBehavior]
        public Resultado<IList<Aluno>> ListarAlunoFiltro(Aluno alunoFiltro)
        {
            return SecretariaFacade.ListarAluno(alunoFiltro);
        }
        #endregion
    }
}
